The invention relates in general to model-based dynamically configured systems, and in particular, to a scheduling method and apparatus for model-based dynamically configured systems.
Model-based techniques have recently begun to be applied to building large-scale engineering applications. Models are used to represent complex industrial facilities, such as a manufacturing plant or a distribution center. The model describes the different components of the industrial process and how the components operate and interact with each other.
The models are interpreted by a knowledge-based interpreter which generates executable code to represent the engineering application. The operation, physical parameters, etc., of each component of the industrial process correspond to and are encompassed by a unit of executable code, and data is passed from one unit of code to another as the program executes. The interpreter configures the final system from elementary building blocks, such as signal processing routines or controller modules. The system configuration is generated dynamically from the model, and the model and the system can be modified during system operation to reflect changes in the environment.
Two types of schedulers, data-driven and demand-driven, are used in prior art model-based dynamically configured systems to control the execution of the various components. In demand-driven scheduling, the scheduler executes only the executable code components that are needed to provide the requested data. When an executable code component receives data, it will not propagate the data forward through the system until requested. In data-driven scheduling, the executable code component executes immediately only when necessary input data becomes available.
Most prior art systems use data-driven activity scheduling because the application systems are typically data-driven, and have real-time constraints. However, in many applications, it is desirable to provide an alternative mechanism, such as demand-driven scheduling, for scheduling the computational units of the system. This is particularly useful for activities that must be requested by an operator or that are initiated by an uncommon event, and that have more flexible time constraints.
It is also more advantageous to use demand-driven activity scheduling in applications where there are a potentially very large number of schedulable activities in the system, but only a subset of them are producing results which are desired at a given moment. Demand-driven activity scheduling, in such cases, offers a better way to utilize the system resources.
In other applications, it would be advantageous to offer both types of scheduling at the same time. This would allow certain activities to execute as data becomes available and other activities to execute only upon user demand. For example, data acquisition, preprocessing, and control loops could be executed as data becomes available, but data plotting and statistical analysis would be performed only when requested.
It is therefore an object of the present invention to provide a model-based dynamically configured system that allows both a demand-driven scheduling mode and a data-driven scheduling mode simultaneously.
It is a further object of the present invention to provide a model-based dynamically configured system which allow some parts of the system to operate in a data-driven mode, while other parts simultaneously operate in a demand-driven mode.